//http://blog.csdn.net/xujiaqiang/archive/2007/07/09/1683768.aspx
Ext.namespace('Ext.propsgriddata');

       //????
        Ext.propsgriddata.custtype = [
        ['1', '??'],
        ['0', '??']
    ];

var Ed = Ext.grid.GridEditor;

        var propsGrid = new Ext.grid.PropertyGrid('props-grid', ...{
        nameText: 'new query',
        enableHdMenu: false,
        viewConfig : ...{
            forceFit:true,
            scrollOffset:2 // the grid will never have scrollbars
        }
    });

    propsGrid.setSource(...{
        "(??)": "???",
        "????": "??",
        "?????": true,
        "????": false,
        "?????": false,
        "??Email": false,
        "??????":0,
           "??????":new Date()
    });

    //?????????editor
    propsGrid.customEditors = ...{
        '????' : new Ed(new Ext.form.ComboBox(...{
            typeAhead: true,
            triggerAction: 'all',
            store: new Ext.data.SimpleStore(...{
                fields: ['cust_type', 'cust_type_name'],
                data : Ext.propsgriddata.custtype
            }),
            displayField:'cust_type_name',
            forceSelection:true,
            name:'cust_type',
            valueField:'cust_type',
            mode:'local'
        }))
    };

    //??grid????????'yyyy/mm/dd'
    propsGrid.getColumnModel().dateFormat = 'Y/m/d';

    //??DateField????????'yyyy/mm/dd'
    var f = Ext.form;
    propsGrid.getColumnModel().editors['date']= new Ext.grid.GridEditor(new f.DateField(...{format:'Y/m/d',selectOnFocus:true}));

    propsGrid.render();